package com.zhentao.dto;

import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 查询模板DTO
 * 根据业务流程需求设计，支持模板保存与复用功能
 */
@Data
public class QueryTemplateDto {
    
    /**
     * 模板ID
     */
    private Long id;
    
    /**
     * 模板名称（用户自定义，如"北京关区8月A类企业进口查询"）
     */
    private String templateName;
    
    /**
     * 查询类型：SUMMARY_QUERY-汇总查询, DATA_QUERY-数据查询, RAW_DATA_QUERY-原始数据查询
     */
    private String queryType;
    
    /**
     * 用户账号（支撑个人模板权限）
     */
    private String userAccount;
    
    /**
     * 关区代码（模板仅在对应关区可见）
     */
    private String customsCode;
    
    /**
     * 进出口类型：IMPORT-进口, EXPORT-出口
     */
    private String importExportType;
    
    /**
     * 结关开始日期
     */
    private Date customsClearanceStartDate;
    
    /**
     * 结关结束日期
     */
    private Date customsClearanceEndDate;
    
    /**
     * 分组维度列表（JSON格式，最多3个，仅汇总查询用）
     * 支持Level 1, Level 2, Level 3层级定义
     */
    private List<String> groupDimensions;
    
    /**
     * 输出字段列表（JSON格式）
     * 汇总查询：处理表中的数值型字段 + 报关单数量 + 记录数量
     */
    private List<String> outputFields;
    
    /**
     * 筛选条件（JSON格式）
     * 支持列值参数，针对不同关区进行设置
     */
    private Map<String, Object> filterConditions;
    
    /**
     * 模板创建时间
     */
    private Date createTime;
    
    /**
     * 模板更新时间
     */
    private Date updateTime;
    
    /**
     * 模板描述
     */
    private String description;
    
    /**
     * 是否共享模板
     */
    private Boolean shared;
    
    /**
     * 模板标签
     */
    private List<String> tags;
} 